package com.clps.algorithm.chapter08.二叉树剪枝;

import com.clps.algorithm.chapter07.二叉树每层的最大值.TreeNode;

/**
 * 一个二叉树的所有结点的值要么是0要么是1，请剪除该二叉树中所有结点的值全都是0 的子树。
 * 例如，在剪除图8.2（a）中二叉树中所有结点值都为0的子树之后的结果如图8.2（b）所示。
 *
 * 图8.2：剪除所有结点值都为0的子树。（a）一个结点值要么是0要么是1的二叉树。（b）剪除所有结点值都为0的子树的结果。
 */
public class dem01 {

    public static void main(String[] args) {

    }



    public TreeNode pruneTree(TreeNode root){
        if(root == null){
            return  root;
        }

        root.left = pruneTree(root.left);
        root.right = pruneTree(root.right);
        if(root.left == null && root.right == null && root.val == 0){
            return  null;
        }
        return  root;
    }
}
